현재 진행 중인 사용자 토론이 있습니다.
r1 | ||
---|---|---|
r1 NiNA |
1 | [[분류:위키 엔진]] |
2 | [목차] | |
3 | ||
4 | '''[[https://feedback.theseed.io|더시드 포럼]]''' | |
5 | ||
6 | == 개요 == | |
7 | [[나무위키]]와 [[알파위키]]에서 사용하는 [[위키 엔진]]으로 namu, PPPP, kasio가 개발했다. the seed라는 이름은 개발 단계에서 통용되는 코드네임[* 이에 대한 [[https://namu.wiki/topic/2816#26|PPPP의 답변]]]이었으나 나무위키의 엔진을 지칭하는 공식적인 이름이 된 것으로 보인다.([[https://namu.wiki/License|#]]) 본 엔진은 [[Node.js]]의 Express.js [[프레임워크]]를 사용했다. | |
8 | ||
9 | == 추가 예정인 기능 == | |
10 | * [[https://feedback.theseed.io/posts/3/injeungdoen-sayongja-acl-jogeon|인증된 사용자 ACL]] | |
11 | * [[https://feedback.theseed.io/posts/12/ridairegteu-munbeob-byeongyeong|리다이렉트 문법 변경]]: 리다이렉트의 대상이 되는 문서에서 '[\[넘겨주기:리다이렉트]]'꼴로 리다이렉트를 설정할 수 있도록 리다이렉트 문법을 변경하는 내용이다.[* 여담으로 예전부터 편집창에 "[의견수렴\] 리다이렉트 문법 변경"이라는 링크가 붙어서 의견 수렴을 진행했었다.] | |
12 | * [[https://feedback.theseed.io/posts/2/alrim-siseutem|알림 시스템]] | |
13 | * [[https://feedback.theseed.io/posts/6/namuwiki-baegyeong-tumyeongdo-seoljeong|나무위키 배경 투명도 설정]] | |
14 | * [[https://feedback.theseed.io/posts/23/samun-hawimunseo-gwanryeon|사용자 문서의 하위문서 관련]]: 사용자 문서의 하위 문서가 최상위 문서로 옮겨지면 삭제하거나 옮기는 것이 불가능해지는데 이를 가능하게 해달라는 요청이다. | |
15 | * [[https://feedback.theseed.io/posts/24/torongwanryeon|숨겨진 댓글 표시 설정]] | |
16 | * [[https://feedback.theseed.io/posts/8/cadannaeyeog-gwanryeon|차단내역 수정 기능]] | |
17 | * [[https://feedback.theseed.io/posts/1/pyeonjib-pilteo|편집 필터]] | |
18 | * [[https://feedback.theseed.io/posts/40/samun-pyeonjibyoceong-isseul-ddae-alrimi-ddeuge-hamyeon-johgessseubnida|사용자 문서 편집 요청 알림]] | |
19 | * [[https://feedback.theseed.io/posts/70/jadong-pyeonjib-api|자동 편집 API]] | |
20 | ||
21 | == 권한 == | |
22 | [[파일:다른 뜻 아이콘.svg|align=left&width=21.6px]] 이 분류에 대한 설명은 [[the seed/업데이트]] 참고 부탁드립니다. | |
23 | ||
24 | == 문제점 == | |
25 | === 모바일에서의 문제점 === | |
26 | [[파일:모바일 표.jpg|width=50%]] | |
27 | ||
28 | 분명 <tablealign=right>이 표에 입력되어 있음에도 불구하고 모바일에서는 표 위치 설정 상관없이 왼쪽으로 설정된다. | |
29 | ||
30 | == 기타 == | |
31 | * 기본적으로 비공개 엔진이기 때문에 일반인들이 구할 수 없다. 대체용으로 나온 게 [[openNAMU|오픈나무]]. | |
32 | ||
33 | * 4.12.0 이하 버전은 HTML과 자바스크립트를 알아보기 쉬웠는데, 현재는 페이지들의 HTML을 열어보면 data-v-(해시) 등의 속성으로 요소들을 구분하게 되어있어 일반적으로 알아보기 어렵게 되어있다.[* Nuxt.js 라이브러리의 특징으로, 해당 라이브러리를 사용중임을 알 수 있다.] 또한 자바스크립트도 전부 난독화되어있어 변수 및 함수 이름들이 16진수 숫자로 되어있고, 작동하지 않는 코드들이 삽입되어있고, 문자열도 인코딩되어있어 알아보기 매우 어렵게 되어있다. 거기에 더해서 모든 문자열들을 한 배열에 모아놓고 함수를 통해서 배열에 접근하는 등 매우 복잡하게 되어있다. | |
34 | ||
35 | * 4.13.0부터 내부 구조가 대거 수정되었다. 4.15.0까지는 기존 방식의 스킨과의 호환성을 위해 해당 스킨을 적용하면 옛 인터페이스를 사용할 수 있었다. 나무위키는 2019년 말쯤에 4.16.0으로 업데이트되어 기존 레이아웃을 사용할 수 없었으나 더시드위키는 업데이트되지 않아 거기서 계속 사용할 수 있었다. 그러다가 2020년 3월 1일에 더시드위키도 4.16.0으로 업데이트되어서 기존 방식과 인터페이스는 더 이상 볼 수 없게 되었다. | |
36 | ||
37 | * 리버티 스킨 기준으로 신 프론트엔드(버전 4.16.0) 이후로 스크립트의 총 크기가 거의 1MB[* 알파위키에는 없는 senkawa 스킨은 약 0.7MB이다.]씩 되어서 모바일에서 데이터 네트워크를 사용하여 접속하는 경우 주의가 필요하다. 다만 지금은 크기가 좀 줄긴 했다. | |
38 | ||
39 | * 2021년 1월 20일 부로 포럼이 리뉴얼되었다. | |
40 | ||
41 | * Date 오브젝트를 그대로 대입해서인지 차단되었을 때 나오는 오류 메시지의 만료일의 형식이 "Sat Dec 27 2132 04:42:20 GMT+0900 (대한민국 표준시)"이고, 앞부분이 영어로 나온다. | |
42 | ||
43 | * 2020년 중후반에 자동 로그인 후 로그아웃이 되지 않는 오류가 있었다. honoka 쿠키의 반환이 제대로 안 되어서 그런데, 값이 "[object Object]"로 잘못 반환되었다. 쿠키를 JSON(오브젝트)으로 관리하는 듯하다.[* 그렇다면 오브젝트의 속성에 접근하는 것을 깜빡해서 발생했을 버그일 가능성이 높다.] | |
44 | ||
45 | * 기여 목록의 특성으로 미루어 보아 내부적으로 초 단위 유닉스 시간을 통해 관리하는 듯하다. | |
46 | ||
47 | * 이전에는 Tor 네트워크 위에서 "더시드"라는 이름의 [[딥 웹]] 위키를 namu가 운영했다. 주소는 .com이나 .wiki가 아니라 .onion으로 끝난다. | |
48 | ||
49 | * 엔진 수정권을 주지 않았음에도 나무위키에'''만''' 있는 기능이 있는 것으로 보아 플러그인이나 확장 프로그램 기능이 있는 듯하다. | |
50 | ||
51 | * 엔진 내부 API는 암호화되어 있다. 아래 코드를 통해 요청을 위조하면 아래와 같은 결과가 나온다. (헤더 값은 2022/9/8 기준) | |
52 | 나무위키 기준으로 테스트되었다. 궁금하면 개발자 도구 콘솔창에 __헤더값을 최신으로 변경하고__ 넣어보자. | |
53 | 코드 : | |
54 | {{{#!syntax javascript | |
55 | const request=new XMLHttpRequest(); | |
56 | request.open('GET','i/p31G64YK67O5Sp8AE71TE4I5cJiNheF3UCsU5-VTieb',true); | |
57 | request.setRequestHeader('x-chika','2013d3f8f8c7b5598'); | |
58 | request.setRequestHeader('x-namuwiki-nonce','zStFHBzm88MnOdE1SkTNvA=='); | |
59 | request.setRequestHeader('x-riko','1fc95018783ef8be685241012a6efd64'); | |
60 | request.setRequestHeader('x-you','af3f5c4a4f54a47f42eda8c501fd03a5'); | |
61 | request.send(); | |
62 | request.onload=()=>{ | |
63 | console.log(request.status); | |
64 | console.log(request.response); | |
65 | } | |
66 | }}} | |
67 | 결과 : {{{٫�Ht����K��� B<�m'�'P����W����E�� q_�eg��K�R� | |
68 | ~�� | |
69 | �L��Z|"35�ϲ���T�%>��O>/ܠ!|팡n4��W�V%f��?�W���OX�fi��_��^���.7�Ih�K�|���Ij�|�5���[�,wHHֶ | |
70 | �~�dl�R5��(7��W���'��O�t%�U��b���^�CV�:3?�Jљ�E���ہ�(�6�T��r�m?�=� ��@KrJ������W�mbt� | |
71 | }}} | |
72 | --굳이 AJAX로 한건 코딩 실력이 딸려서 그런 것 이므로 더 효율적인 것이 있으면 [[추가 바람]]-- | |
73 | [각주][include(틀:알파위키에서 가져옴, article=the seed, rev=187)] |